package a26_Collection.TreeSet;

import java.util.Comparator;
import java.util.TreeSet;

/**
 * @Author quan
 * @Description 比较器排序与自然排序的区别
 * 默认使用自然排序法，不符合要求才使用第二种排序方式
 * 要求存入四个字符串：“c”,"ab","df","qwer"
 * 按照长度排序,如果一样长则按照首字母排序
 * @Date 2023/2/20 19:36
 */
public class SortDifference {
    public static void main(String[] args) {
        //1、创建集合
        TreeSet<String> ts = new TreeSet<>(new Comparator<String>() {
            //(重写的compare方法按长度来比较)
            @Override
            public int compare(String o1, String o2) {
                //o1:当前要添加的元素
                //o2:已经在红黑树中存在的元素
                //返回值规则与之前相同
                int i = o1.length()-o2.length();
                //如果长度不相同，就按自定义的长度来比较
                if(i!=0){
                    return i;
                }
                //如果长度相同，就调用默认的比较规则
                else{
                    return o1.compareTo(o2);
                }
            }
        });
        //2、添加元素
        ts.add("c");
        ts.add("ab");
        ts.add("df");
        ts.add("qwer");
        //3、打印集合
        System.out.println(ts);
    }
}
